-
Notifications
You must be signed in to change notification settings - Fork 8.1k
drivers: display: add HUB12 LED matrix driver #97921
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
drivers: display: add HUB12 LED matrix driver #97921
Conversation
ceee1e6 to
f1c8199
Compare
f1c8199 to
a8f5a64
Compare
a8f5a64 to
83044fc
Compare
|
In the last force push, I added partial update to support LVGL and Edit: Also removed hardcoded dimensions and replaced them with bindings. For now it only supports single panel. But I will add support for chaining in the future. |
|
Hi @JarmouniA |
a84c26e to
3a315fc
Compare
3a315fc to
fe4bfda
Compare
Add device tree binding for HUB12 interface monochrome LED matrix displays (32x16 pixels). The HUB12 interface uses SPI for data transfer to shift registers, with additional GPIO pins for row address selection (PA, PB), output enable (PE), and data latching (PLAT). Signed-off-by: Siratul Islam <[email protected]>
Add driver for HUB12 interface monochrome LED matrix displays. Features: - 32x16 pixel resolution, 1-bit monochrome (PIXEL_FORMAT_MONO01) - SPI-based data transfer with shift registers - Configurable brightness control - Thread-safe framebuffer access with semaphore The driver implements the standard Zephyr display API Signed-off-by: Siratul Islam <[email protected]>
fe4bfda to
08cbbb7
Compare
|
| #define HUB12_PIXELS_PER_BYTE 8 | ||
|
|
||
| /* Brightness control parameters */ | ||
| #define HUB12_PWM_FREQ 1000 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is it used anywhere?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I was working back and forth between a pwm and non pwm implementation. I'll add chaining in a future PR. Will have to see how that performs with pwm vs no pwm. I'll address this in a future PR regardless. Thanks
| struct hub12_data *data = CONTAINER_OF(work, struct hub12_data, scan_work); | ||
| const struct hub12_config *config = data->dev->config; | ||
|
|
||
| hub12_scan_row(data, config); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I suggest adding the semaphore in here as hub12_write also access hub12_update_cache and other stuff.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Although in my testing there was no issue but a semaphore could be used here. I'll add it in a future pr as it is merged already



Add driver for HUB12 interface monochrome LED matrix displays.
Features:
The driver implements the standard Zephyr display API